package com.own.business.push.core.base;

import com.own.business.push.core.model.RegisterRegistrationIdModel;
import org.springframework.stereotype.Component;

import java.util.Collection;
import java.util.List;

/**
 * BaseSaveRegistrationIdMethod
 *
 * @author chenxueli
 * @date 2023-11-14 09:34:00
 */
@Component
public interface BaseSaveRegistrationIdMethod {

    /**
     * 保存注册id
     *
     * @param model 注册id模型
     */
    void save(RegisterRegistrationIdModel model);

    /**
     * 根据用户id删除
     *
     * @param userId 用户id
     */
    void removeByUserId(Long userId);

    /**
     * 根据用户id获取注册id
     *
     * @param userId 用户id
     * @return 注册id
     */
    RegisterRegistrationIdModel getByUserId(Long userId);

    /**
     * 根据用户id列表获取注册id列表
     *
     * @param userIdList 用户id列表
     * @return 注册id列表
     */
    List<RegisterRegistrationIdModel> listByUserIdList(Collection<Long> userIdList);

    /**
     * 根据模块查询注册id列表
     *
     * @param module 模块
     * @return 注册id列表
     */
    List<String> listRegIdListByModule(String module);

}
